﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LeMigue.Scrum.Iterface.Model;

namespace LeMigue.TeamPortal.Base.View
{
    public class TaskView
    {
        protected Task _task;
 

        public TaskView(Task task)
        {
            _task = task;
        }


        //TODO: incluir numa classe abstrata para referencia
        public Task Reference
        {
            get{
                return _task;
            }
        }
        
        public string Title{
            get { return _task.Title; }
        }

        public int Id{
            get { return _task.Id; }
        }

        public string Description
        {
            get { return _task.Description; }
        }

        public string RemainWork {
            get{

                if (!_task.RemainingWork.HasValue || _task.RemainingWork.Value <= 0)
                    return "";

                if (_task.RemainingWork.Value >= 1.0)
                    return _task.RemainingWork.Value.ToString("0");

                if (_task.RemainingWork.Value == 0.5)
                    return "½";

                return "x";
            }
        }

        public string AssignTo { 
            get{
                return _task.AssingTo == null ? "" : _task.AssingTo.Name;
            }
        }

        public string Css
        {
            get
            {
                return _task.HasTask ? "taskGroup" : "taskSingle";
            }
        }

        public string BtnSubs
        {
            get
            {
                //TODO: pensar se fica aqui ou coloco em outro local (na controller por exemplo)
                return _task.HasTask ? "Botoes/Subs" : "Empty";
            }
        }
        public string BtnEdit
        {
            get
            {
                //TODO: pensar se fica aqui ou coloco em outro local (na controller por exemplo)
                return "Botoes/Edit";
            }
        }

        public int Parent
        {
            get
            {
                return _task.Parent;
            }
        }
        
    }
}
